home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The PC-SIG Library 9
/
The PC-SIG Library on CD ROM - Ninth Edition.iso
/
001_100
/
DISK0042
/
DISK0042.ZIP
/
MSKERM.BWR
< prev
next >
Wrap
Text File
|
1990-02-19
|
28KB
|
529 lines
File KERMIT.BWR MS-DOS KERMIT 3.0 "BEWARE FILE" January 1990
Last update: Mon Jan 29 21:12:06 1990
This file lists limitations, restrictions, and known bugs in MS-DOS Kermit
version 3.0. Also see KERMIT.UPD for a list of new features of version 3.0
and incompatibilities with older releases.
The user manual for MS-DOS Kermit 3.0 is "Using MS-DOS Kermit", by Christine
M. Gianone, published by Digital Press, Bedford, MA, 1990, order number
EY-C204E-DP. Call 1-800-343-8321 (toll free, USA) to order. The technical
reference by Professor Joe R. Doupnik is in preparation.
MS-DOS Kermit 3.0 has been successfully tested with PC-DOS 2.0, 3.0, 3.30, and
4.0 on a wide variety of IBM PCs, XTs, PC/ATs, Portable PCs, PS/2s, and
compatibles. DOS 2.0 or later is required, plus at least 130-140K of free
memory.
LIMITATIONS AND RESTRICTIONS OF MS-DOS KERMIT
On IBM PCs and PS/2s with IBM asynchronous adapters, Kermit can be used at
speeds up to 57600 bps. For 115200 bps to work, a very short shielded cable is
required, and the async adapters of the two machines must be in perfect tune.
It's an electrical affair, not one of programming.
Although high speeds can be used for file transfer, the maximum speed for VT
and Tektronix terminal emulation depends upon the model of your PC. For
original PCs and PC/XTs, it is 9600 bps. For PC/ATs and PS/2s, it is
generally 19200, perhaps 38400 for the faster 386-based models. If your speed
is set too high for your PC model, the symptom will be lost or garbled
characters (or graphics images) on the screen.
MS-DOS Kermit does not attempt to monitor the communication line for carrier
loss during terminal emulation or file transfer (but you can SHOW MODEM or
SHOW COMMUNICATIONS to inquire about CD, DSR, and CTS). The absence of
carrier monitoring is a design decision. Interactive users will notice when
carrier drops, and timeouts will catch the situation during file transfer or
script execution. The script command WAIT permits sensing carrier presence
while doing scripts or macros. The benefits are not having to wire a direct
RS-232 connection to simulate a modem's carrier being present, and being able
to talk to the local modem before carrier is detected from the other modem.
The SHOW MODEM and WAIT commands will work right only if your modem or other
communication device is configured to raise and lower the DSR, CTS, and CD
signals appropriately, and the cable that connects your PC to the modem passes
these signals through. For some modems, the factory setting is to always keep
CD on, even if there is no connection. Consult your modem manual.
For RS-232 devices, the HANGUP command (and Ctrl-]H in CONNECT mode) will work
only if the cable that connects your PC to the communication device passes the
DTR signal through, and if the communication device itself is configured to
hang up or otherwise terminate the connection when the DTR signal is lowered
by the PC. For many modems, the factory setting is to ignore DTR transitions.
Consult your modem manual (for Hayes 1200 modems, set DIP switch 1 Up; for
Hayes 2400, type the command AT&D2&W).
MS-DOS Kermit will not necessarily work with all brands of internal modems,
particularly some of the built-in ones that come with laptop PCs from various
makers. If you cannot communicate satisfactorily through such a modem, give
the command SET PORT BIOSx (where x is 1, 2, 3, or 4, corresponding to whether
the modem is COM1, COM2, COM3, or COM4) and try again. Kermit does work with
most popular brands of internal modem (such as the Hayes Smartmodem 1200B and
2400B), and with all known external modems, both direct-connect and acoustic.
Kermit does not work properly with revision C of the built-in modem in the
Toshiba T1600 laptop computer, due to an idiosyncracy of this modem. The
symptom is that the connection drops when you escape back from connect mode,
at which point Kermit turns off interrupts. The modem misinterprets this as a
command to hang up the phone and turn itself off. Revision F of this modem
does not have this problem. Note: This problem occurs with the "built-in"
modem, not the "internal" modem (these are two different devices).
The IBM PC implementation of VT300/100 emulation has several restrictions: no
smooth scroll, no ENQ/Answerback, no setup screen (use SET TERMINAL commands
instead), no split speeds. Double height/width characters are simulated.
In addition, the VT320/340 emulator lacks the following functions of the
corresponding real terminals:
. Down loadable soft fonts
. ReGis graphics (VT340/330)
. Dual sessions in split screens (VT340/330)
. Local screen editing and block transmission (for security reasons)
. Answerback (also for security reasons)
. Selective erasure (as a character attribute, a formatted screen item)
. And many of the exotic and rarely known features of the DEC VT340/330
series: mostly formatted screen and graphics operations highly specialized
to DEC hardware.
When you type the escape character (normally Ctrl-]) while in Tektronix
graphics mode, the screen goes back to text memory. Then when you type the
argument character, the graphics screen reappears (unless the argument was C
or P). Ctrl-]F will not file the graphics screen, but rather the text screen,
because that's the screen that's showing after type the Ctrl-] key. To file
the graphics screen (in TIFF format), use Ctrl-End (which has the Kermit verb
\Kdump assigned to it by default).
When printing a graphics screen to a black-and-white printer, make sure
your graphics image has a black background. Otherwise you are likely to
get a solid black printout, since most graphics printer drivers print a
black dot for every dot that's illuminated on the screen.
If your display adapter lacks sufficient memory (as do CGA and the early 64K
EGA boards), then when you toggle away from a graphics screen, or type the
connect-mode escape character (Ctrl-]), the graphics image will be lost.
Furthermore, certain graphics images may be overlaid with vertical stripes on
small (64K) EGA systems.
In VT100/300 emulation on the IBM family, receipt of the ESC [ 4 m (turn on
underscore) command results in reverse video rather than underscore on IBM CGA,
EGA and other color monitors. This was done to avoid showing underscoring
as the IBM specification of non-bold blue on black.
If a file is sent to the PC, and MS-DOS Kermit has SET FILE WARNING OFF
(meaning, overwrite existing files when incoming files arrive with the same
name), and the sender reports the file size in an Attribute packet, and this
size is larger than the available disk space on the PC, then MS-DOS Kermit
will properly refuse the file, but will also destroy any previously existing
file of the same name.
SET DEST DISK does not redirect output of REMOTE commands to disk -- they come
to the screen, by design. Use the ">" output redirection symbol for this, for
example: "remote dir > files.dir".
The name and password that you specify in SET SERVER LOGIN must be matched
exactly by the ones in REMOTE LOGIN. Alphabetic case matters.
It can be very difficult sometimes to interrupt execution of a script from the
keyboard by typing Ctrl-C. Particularly scripts with INPUT commands that have
long timeouts, within loops, etc. If you think your script needs to be
manually interrupted at critical points, you can use the following trick:
SET ALARM 3
ECHO Type something now if you want to quit...\13
PAUSE 3
IF NOT ALARM STOP
This works because PAUSE is interruptable by any keyboard input.
The last line of a TAKE command file (or MSKERMIT.INI) must end with a
carriage-return/linefeed sequence (like all the other lines in the file), or
it might not be processed by the program.
Commands in TAKE-files or MSKERMIT.INI can be continued by including "-" as
the last character on the line, but NOT if the line ends with a trailing
comment. In other words, you can't have a trailing comment on a continued
line. If you need to end a line with a dash, but this dash is to be part of
the command rather than a continuation symbol, then use \45 instead or put a
comment AFTER the dash.
Trailing comments can be used only in command files. All text starting with
the first semicolon through the end of line is ignored. If you need to include
an actual semicolon in a command, precede with a backslash (\;).
If you need to include a question mark in a command file, use \63. A literal
question mark will cause a help message to appear on your screen.
There may be translation errors in the VT320 emulator for international
characters entered at the keyboard or received from the host when the terminal
character set is LATIN1 (none are currently known). If you encounter a
mistranslated character, or you want to change one of Kermit's proper
translations, use the SET KEY and SET TRANSLATE INPUT commands. For example:
SET KEY \199 \195 ; Make key scan code 199 send code 195
SET TRANSL INP \195 \199 ; Translate arriving 195 code to 199
REMOTE TYPE and other REMOTE commands may result in an error "Unable to open
CON". This can result from insufficient FILES= in CONFIG.SYS or systems with
all file handles used by, say, a network shell. FILES= should be at least 20.
Other errors may be introduced by your DOS Environment line COMSPEC=, which
Kermit uses to find COMMAND.COM in order to execute PUSH, RUN, and other
commands. This line is set by the SHELL= line in your CONFIG.SYS file. If
you have a COMSPEC= line, make sure it designates the location and name of
your DOS command processor. Furthermore, if you have a SHELL= line in your
AUTOEXEC.BAT, it will result in a SHELL= line in your DOS environment, and
this will take precedence over your COMSPEC= line, so if you use one of these,
make sure it is correct too. To examine your DOS environment for COMSPEC=
and SHELL= lines, type the DOS command SET by itself with no arguments.
Printer support... Transparent printing is started when the host sends the
sequence ESC [ 4 i, and stops when the host sends ESC [ 5 i. Transparent
printing passes all characters, including escape sequences, that arrive at the
port directly to the printer without translation (but strips off the parity
bit if Kermit's parity is not NONE). Character translation for printing --
whether done by transparent print, PrintScreen key, logging to PRN, etc -- if
needed, must be done by the DOS printer driver or other utility outside of
Kermit.
When using Kermit through a terminal server (particularly those that execute
the TCP/IP Telnet protocol), it is often necessary to SET PARITY EVEN in order
to transfer files. It is also often impossible to use very long packets.
Try SET RECEIVE PACKET-LENGTH 80, working up or down to the longest length
that works.
MS-DOS Kermit must be assembled with MASM (Microsoft Assembler) 5.0 or later
(and linked with the accompanying LINK), because the symbol tables are too big
for earlier MASM versions. (In fact, all modules but MSZIBM.ASM can also be
assembled by MASM 4.0.) Reportedly, the program can also be built using
Borland TASM (although several harmless warning messages appear) and TLINK, as
well as Xenix MASM/DOSLD, and Intel ASM86, but MS-DOS Kermit is designed to be
built by Microsoft MASM and LINK.
On early (original motherboard & BIOS) PCs, and on systems that mimic them
(e.g. early Compaqs), the cursor may assume a strange shape upon return from
CONNECT mode. This is caused by a bug in the early BIOS, which stored cursor
attributes incorrectly. The PC Tech Journal article discussing the problem is
"The Dashed Cursor", by Paul Pierce, PC Tech J., Dec. 1985, page 47. He
suggests the following fix:
;
; Program FIXCURS.ASM by Paul Pierce, PC Tech Journal, Dec 1985, page 47.
;
code segment public 'code'
assume cs:code, ds:code, es:nothing
;
; This program is set up to be made into a COM file
;
org 100H
;
; First check for the monochrome adapter.
;
start: int 11H ; set ax = equipment flag
and al,30H ; mask off all but video bits
cmp al,30H ; test for monochrome adapter
jne exit ; jump if not monochrome
;
; Now check for incorrect cursor mode returned from the Bios
;
mov ah,3 ; call bios to get cursor type
int 10H ;
cmp cx,0607H ; check for invalid (color) type
jne exit ; jump if not a bad value
;
; At this point we know that the monochrome adapter is in use and that
; the bios cursor mode is incorrect.
; Call the bios to set the cursor type correctly.
;
mov cx,080cH ; use correct cursor type
mov ah,1 ; call bios to set cursor type
int 10H
exit: mov ah,0 ; exit back to DOS
int 21H
code ends
end start
GENERAL WORDS ON DOS VERSUS ANY COMMUNICATIONS PROGRAM
Shift-Printscreen can cause the PC to hang if there is no attached printer.
This is a BIOS feature, Kermit never receives the command. It occurs most
frequently with a printer interface that has nothing plugged into it. If this
happens during terminal emulation, try pressing Alt-= several times to reset
the terminal.
When used in remote mode, e.g. as a server, a REMOTE HOST command can invoke
the DOS critical error handler, which issues its familiar "Abort, Ignore,
Retry?" message on its real screen, and is waiting for a response from its own
real keyboard, and so the server will no longer respond. Kermit attempts to
catch many of these errors before DOS learns learns about them, but some
cannot be avoided (like disk i/o errors).
Interaction between MS-DOS Kermit and various terminate-and-stay-resident
(TSR) programs is necessarily unpredictable, depending upon how "well behaved"
they are. Certain console, mouse, or graphics drivers might interfere with
file transfer, etc. Caution should be used when invoking certain TSR programs
while PUSHed from Kermit (e.g. using the PRINT command for the first time), as
not all of these programs observe proper etiquette for allocating and freeing
memory, and more importantly the TSRs will be loaded above Kermit into the
middle of memory where they may prevent large programs from loading later.
As a concrete example of the above, certain mouse drivers may prevent Kermit
from transferring files, and possibly also from recovering from timeouts
during script execution, or even from XOFF deadlocks during terminal emulation.
This is because Kermit and the mouse driver are competing for the same
interrupt, and the mouse driver might not be playing by the rules. Possible
workarounds include: (1) remove the mouse driver from your CONFIG.SYS file;
(2) if your mouse driver can be turned off and on (e.g. if you have MOUSE
OFF and MOUSE ON commands), turn the mouse off during Kermit execution; (3)
give the MS-DOS Kermit command SET TIMER OFF.
If TSR programs are interfering with Kermit (by taking over the timer or
serial port interrupts), you should remove them all from your AUTOEXEC.BAT
or CONFIG.SYS files, and then put them back one by one until you have
identified the one that's causing the problem. Don't run this one while
running Kermit.
MS-DOS Kermit may be run as an external protocol by other programs, such as
BBS systems. Kermit restores the interrupt vectors properly, and leaves
communication port interrupts turned off, as it should. It is the
responsibility of the invoking program to turn them back on if necessary.
Some PCs have more than two serial ports, but until recently there has been no
standard about addresses for COM3 and COM4. PC DOS 3.30 does not assign them
either because it is really a problem of the system ROM Bios boot code run
when the power is turned on. However, Kermit will use COM3 and/or COM4 if the
base address of a port is placed in low memory words 40:4H (COM3) or 40:6H
(COM4); the tests described above are then carried out. One restriction is
that the Interrupt ReQuest number (IRQ in the serial port board manual) must
be either IRQ4 or IRQ3. Kermit attempts to locate which line is correct with
a short test. If the test is not successful it uses the IRQ4 for COM3 (and
for COM1) and IRQ3 for COM4 (and for COM2) on the PC/AT, and on the PS/2 it
uses IRQ3 for COM2, COM3, and COM4. Check your communication board and its
manual. The DOS utility DEBUG can be used to create a short program to insert
the board's addresses into the segment 40H memory locations; a sample program
is given below.
IBM PC/XT/AT and PS/2 Serial Port Numbers:
Serial Port Address IRQ Line Conventions
COM1 03F8H 4 IBM standard
COM2 02F8H 3 IBM standard
COM3 ? 4 (3 for PS/2) Board
COM4 ? 3 Board
The addresses shown as query marks are to be found in the board's reference
manual; values such as 2E8H and 2E0H would be common. However, there is no
standard for anything to do with COM3 and COM4 on non-PS/2's.
Assuming that you have selected an address in harmony with the rest of the
system, set the board's switches or jumpers, and use DEBUG to insert the
address(es) in segment 40H memory. The example below creates a small program
named SETCOM3.COM to put address 02E8H into the memory word 40:04H for COM3
and writes the program to drive A. Substitute the desired drive letter for
"a:" in the second line below. The dash (-) is DEBUG's command prompt,
and the xxxx:nnnn lines are addresses for which DEBUG prompts you to type
an instruction, such as "mov ax, 40".
A> DEBUG don't type these comments
-n a:setcom3.com sets name of output file
-a assemble command
xxxx:0100 mov ax,40 value 40h
xxxx:0103 mov es,ax put it into register es
xxxx:0105 mov ah,02 the 02 part of 02E8H
xxxx:0107 mov al,e8 the E8 part of same
xxxx:0109 es:
xxxx:010A mov [4],ax store in 40:4 for com3 ([6] for com4)
xxxx:010D int 20 return to DOS
xxxx:010F blank line to end assemble mode
-r cx show contents of register cx
CX 0000
: 0f set register cx to write 0fh bytes
-w write material to the disk file
-q quit debug
A> DEBUG setcom3.com
-u unassemble to see if all is well
-q quit debug
Note, for COM4, use [6] above rather than [4], and of course employ your
board's port address in place of 02E8H (check the manual). Finally, try it:
A> setcom3 run the program
A> DEBUG now see what's down there
-d 40:00 display bytes in seg 40H
( Shows many bytes. See yours? Good. )
-q
A>
A small side effect noted in practice is the first time the extra port is used
there may be garbage from it. Just return to the Kermit prompt and try again,
if necessary SET PORT to the other COM lines momentarily, all should be well
the second time.
KNOWN BUGS IN MS-DOS KERMIT VERSION 3.0
SET EOF CTRL-Z, when used to upload text files which actually contain Ctrl-Zs,
might result in gaps or truncation in the vicinity of the Ctrl-Z. This is
an artifact of DOS file i/o.
The graphics display on the PS/2 Model 30, whose graphics adapter is neither
a real EGA nor a real VGA, is elongated vertically so that certain normal
Tektronix graphics images might not fit on the screen.
Reportedly, MS-DOS Kermit 3.0 sometimes loses certain terminal settings, such
as WRAP or tab settings. This might be caused by Kermit's new ability to
accept VT300 8-bit control sequences when connected to a system that sends
parity, and you have given the command SET DISPLAY 8 (which should not
normally be done). To restore default tab settings quickly, use the command
SET TERM TABS AT 1:8.
Some users have reported extended waits if they use a network connection and
have said MODE COM1:speed,n,8,1,P. The trailing P means "Printer", telling
DOS to do very lengthy retries, and if DOS gets control of the port it may do
just that. Suggested alternative is to remove the ",P" above. Recall, SHOW
commands that need information about a serial port may activate COMx unless
another port has been selected.
Reportedly, Kermit does not operate properly on a PS/2 Model 25 under DesqView.
Further reports welcome.
Reportedly, Kermit receives a file access error when attempting to write files
on a PC-NFS file server. Further information is needed.
-------------------------------------------------------------------------
ADDITIONS TO THIS FILE AFTER VERSION 3.0 WAS RELEASED ON JANUARY 16, 1990:
The non-IBM-compatible versions of MS-DOS Kermit 3.0 are not done yet. Some
(DEC Rainbow, Heath/Zenith-100, HP, GRiD) are currently in preparation and
will be announced when they are ready. Volunteers are needed for the others
(Victor, Sanyo, TI, NEC, etc). In the meantime, the new mss*.* source files
are incompatible with the old msu, msg, msx, msy, and msz system-dependent
source files for the non-IBM systems.
Characters that arrive during terminal emulation that are translated by the
SET TRANSLATE INPUT mechanism bypass the current shift-in/shift-out state.
This means that SET TRANSLATE INPUT cannot be used successfully with an
8-bit terminal character set in a 7-bit communication environment.
Arriving characters are translated first, then shifted according the current
shift-in/out state, rather than the reverse.
The MSKERMIT.INI file on the distribution diskette contains two errors:
1. In ERRSTP definition, "\%\13" should be changed to "\%1\13".
2. In COPY definition, second "if < argc 2" should be "if < argc 3".
These errors are fixed in the online copy.
When using version 3.0 in terminal mode with a DEC operating system (like
VAX/VMS) that knows your terminal type is VT320, you should SET DISPLAY 8 in
order for Kermit to properly process 8-bit graphic and control characters
which certain applications (such as Word-11 and EVE) will send.
RTS/CTS half-duplex hardware handshaking does not work in all circumstances.
Reportedly, Wyse big screens have problems in Tek mode.
Version 3.00 hangs when run on AT&T 6300 PCs running MS-DOS (not PC-DOS)
3.10. This can be fixed using a DEBUG patch listed in MSVIBM.DBG.
Reportedly the "LEDs" in the mode line don't work during VT320 emulation,
but they continue to work in VT102 emulation.
Orchid Designer Professional VGA board doesn't work in 132-column mode. This
is because this board has the same signature (video mode) as the earlier,
incompatible model (Orchid Designer), and Kermit can't tell the difference
between the two.
Although Kermit does not handle REGIS graphics, there is reportedly at least
one REGIS-to-sixel converter on the market: RETOS, a DEC product for VAX/VMS.
So that key translation and macros can work on both IBM and non-IBM compatible
PCs, Kermit uses the system BIOS to obtain key scan codes. But the IBM BIOS
does not produce scan codes for certain keys, notably Num Lock.
Unfortunately, Num Lock happens to be exactly where you would want to put the
DEC PF1 (Gold) key for DEC VT keypad-oriented applications.
SET LO is no longer a sufficient abbreviation for SET LOCAL-ECHO. Use SET LOC.
Reportedly, scrolling does not work correctly on the Zenith 386SX PC (also
said to be true of earlier versions of Kermit). Most likely a problem with
this machine's video BIOS.
Defining a session log using a macro does not work properly: if you
DEFINE XXX LOG SESSION X.LOG, then XXX results in a transaction log rather
than a session log, and to add to the confusion, SHOW LOG reports that a
packet log named X.LOG is in use. The same bug happens with LOG PACKETS.
A real VT300 series terminal prints received Ctrl-Z characters as big reversed
question marks, but Kermit does not print anything for this character. This
can cause alignment problems when editing files using TPU on VAX/VMS, etc.
CD command displays the new directory. Version 2.32/A didn't do this. This
behavior can be annoying in script or TAKE file execution.
Reportedly, the Norwegian/Danish NRC terminal character set mistranslates
capital O-slash (the replacement for ASCII \) as small o-slash (ASCII |) under
code page 865.
If you SET PORT DECNET, the maximum length of a Kermit command is reduced to
seventeen characters. Temporary workaround: After giving the command SET
PORT DECNET, make sure the next command is 17 characters or less. After that,
everything is back to normal.
Reportedly on the NESS-286, NESS-88, and Olivetti M24 PCs, it is necessary to
type Ctrl-Break after escaping back from terminal mode with Alt-X in order to
get the MS-Kermit> prompt. Furthermore, the NESS-88 cannot reconnect after
escaping back (this is said to be caused by a BIOS bug).
Reportedly, version 3.00 with SET PORT BIOS1 causes Rainbow Software's
(Edinburgh) PADPORT TSR program to go into a endless loop, whereas 2.32/A and
earlier did not.
Reportedly, in order for version 3.0 to work properly under DESQview, it must
be given at least 160K, even with only one screen of rollback memory. If
insufficient memory is allocated for Kermit under DESQview, garbage will
appear at the MS-Kermit> prompt upon escaping back from a terminal connection,
and then Kermit hangs.
Reportedly, Kermit does not work well with the IBM EBIOS Async communication
server. Many characters are lost.
Limitation (not bug): SET TERMINAL CHARACTER SET is effective only for text
screens, not for graphics screens. This is because the fonts for all the
special characters have not been designed yet.
SET TERMINAL COLOR is effective only for text screens. The ANSI coloring
escape sequences, ESC [ ... m, may be used to control the colors on the
graphics screen.
The PC hangs upon escaping back from connect mode on a communication port if
the DOS command MODE COM1:speed,n,8,1,P has previously been given. Solution:
before using Kermit, give a similar MODE command, but without the P. If you
find your PC hung in this way, type Ctrl-Break one or more times to get the
MS-Kermit> prompt back.
The DEC VAXmate PC/AT-compatible does not display 8-bit character sets
correctly in terminal mode.
IF = COUNT, IF = ARGC, etc, don't work. Instead they give an error message
"?Number is required".
Limitation: C1 control characters arriving from the host are exempt from
translation mechanisms (as they should be in a "standard" 8-bit character set).
However, in the real world some host character sets have graphic characters in
the C1 positions, e.g. Russian DKOI.
If an INPUT command is interrupted by pressing the Enter key, the status
is set to SUCCESS rather than FAILURE. There is no one way to do this that
will satisfy everyone, so perhaps a SET command should govern whether an
interrupted INPUT command should SUCCEED or FAIL.
The host prompt for TRANSMIT is a single character (SET TRANSMIT PROMPT). But
if the host echoes the transmitted material, and if linefeed can't be used as
the prompt, this method will fail (for example if the host prompt is period
(.), but the text being transmitted also contains many periods).
End of file KERMIT.BWR.